home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / gui / proxydialog.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  9KB  |  194 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import wx
  5. from wx import WHITE, HORIZONTAL, VERTICAL, ALIGN_RIGHT, ALIGN_CENTER_VERTICAL, EXPAND, ALIGN_LEFT, ALL
  6. from cgui import SimplePanel
  7. from gui.uberwidgets.PrefPanel import PrefPanel
  8. from gui.validators import NumericLimit
  9. import util.proxy_settings as util
  10. ID_NONPROX = wx.NewId()
  11. ID_SYSPROX = wx.NewId()
  12. ID_SETPROX = wx.NewId()
  13. ID_HTTP = wx.NewId()
  14. ID_HTTPS = wx.NewId()
  15. ID_SOCKS4 = wx.NewId()
  16. ID_SOCKS5 = wx.NewId()
  17. from config import platformName
  18.  
  19. class ProxyPanel(SimplePanel):
  20.     
  21.     def __init__(self, parent):
  22.         SimplePanel.__init__(self, parent, wx.FULL_REPAINT_ON_RESIZE)
  23.         if platformName != 'mac':
  24.             self.BackgroundColour = WHITE
  25.         
  26.         sz = self.Sizer = wx.BoxSizer(VERTICAL)
  27.         top = wx.BoxSizer(HORIZONTAL)
  28.         radpanel = wx.Panel(self)
  29.         rs = radpanel.Sizer = wx.BoxSizer(VERTICAL)
  30.         RADIO = wx.RadioButton
  31.         overrads = self.overrads = dict(NONPROX = RADIO(radpanel, ID_NONPROX, _('&No proxy'), style = wx.RB_GROUP, name = 'override'), SYSPROX = RADIO(radpanel, ID_SYSPROX, _('Use &default system settings'), name = 'override'), SETPROX = RADIO(radpanel, ID_SETPROX, _('&Specify proxy settings'), name = 'override'))
  32.         rs.Add(overrads['NONPROX'], 0, ALL, 2)
  33.         rs.Add(overrads['SYSPROX'], 0, ALL, 2)
  34.         rs.Add(overrads['SETPROX'], 0, ALL, 2)
  35.         proxyp = wx.Panel(self)
  36.         ps = proxyp.Sizer = wx.FlexGridSizer(2, 2)
  37.         ps.AddGrowableCol(1, 1)
  38.         
  39.         TEXT = lambda s: wx.StaticText(proxyp, -1, s)
  40.         
  41.         INPUT = lambda d, v = (wx.DefaultValidator,): wx.TextCtrl(proxyp, -1, d, validator = v)
  42.         ps.Add(TEXT(_('&Host:')), 0, ALIGN_RIGHT | ALIGN_CENTER_VERTICAL | ALL, 2)
  43.         ps.Add(hosti, 0, ALIGN_LEFT | ALIGN_CENTER_VERTICAL | EXPAND | ALL, 2)
  44.         ps.Add(TEXT(_('P&ort:')), 0, ALIGN_RIGHT | ALIGN_CENTER_VERTICAL | ALL, 2)
  45.         ps.Add(porti, 0, ALIGN_LEFT | ALIGN_CENTER_VERTICAL | ALL, 2)
  46.         protop = wx.Panel(self)
  47.         prs.Add(protorads['HTTP'], 0, ALL, 2)
  48.         prs.Add(protorads['SOCKS4'], 0, ALL, 2)
  49.         prs.Add(protorads['SOCKS5'], 0, ALL, 2)
  50.         authp = wx.Panel(self)
  51.         aus.AddGrowableCol(1, 1)
  52.         
  53.         TEXT = lambda s: wx.StaticText(authp, -1, s)
  54.         
  55.         INPUT = lambda d, style = (0,): wx.TextCtrl(authp, -1, d, style = style)
  56.         aus.Add(TEXT(_('&Username:')), 0, ALIGN_RIGHT | ALIGN_CENTER_VERTICAL | ALL, 2)
  57.         aus.Add(useri, 0, ALIGN_LEFT | ALIGN_CENTER_VERTICAL | EXPAND | ALL, 2)
  58.         aus.Add(TEXT(_('&Password:')), 0, ALIGN_RIGHT | ALIGN_CENTER_VERTICAL | ALL, 2)
  59.         aus.Add(passi, 0, ALIGN_LEFT | ALIGN_CENTER_VERTICAL | EXPAND | ALL, 2)
  60.         top.Add(PrefPanel(self, proxyp, _('Proxy Server')), 1, EXPAND | ALL, 2)
  61.         top.Add(PrefPanel(self, protop, _('Protocol')), 0, EXPAND | ALL, 2)
  62.         bsz = wx.BoxSizer(wx.HORIZONTAL)
  63.         okb = wx.Button(self, wx.ID_OK, _('&OK'))
  64.         okb.SetDefault()
  65.         canb = wx.Button(self, wx.ID_CANCEL, _('&Cancel'))
  66.         bsz.Add(okb, 0, ALL, 4)
  67.         bsz.Add(canb, 0, ALL, 4)
  68.         sz.Add(PrefPanel(self, radpanel, _('How to Connect')), 0, EXPAND | ALL, 2)
  69.         sz.Add(top, 1, EXPAND)
  70.         sz.Add(PrefPanel(self, authp, _('Authentication')), 1, EXPAND | ALL, 2)
  71.         sz.Add(bsz, 0, ALIGN_RIGHT)
  72.         pd = self.proxy_dict
  73.         override = pd.get('override', 'SYSPROX')
  74.         
  75.         try:
  76.             override = int(override)
  77.         except:
  78.             passi = self.passwordi = INPUT('', wx.TE_PASSWORD)
  79.             useri = self.usernamei = INPUT('')
  80.             (aus = authp.Sizer = wx.FlexGridSizer(2, 2),)
  81.  
  82.         override = [
  83.             'SYSPROX',
  84.             'SETPROX'][override]
  85.         self.override = override
  86.         self.overrads[self.override].Value = True
  87.         self.addr = pd.get('addr', '')
  88.         self.port = pd.get('port', '')
  89.         self.proxytype = pd.get('proxytype', 'HTTP')
  90.         self.protorads[self.proxytype].Value = True
  91.         self.username = pd.get('username', '')
  92.         self.password = pd.get('password', '')
  93.         self.Enablement()
  94.         okb.Bind(wx.EVT_BUTTON, self.OnOK)
  95.         canb.Bind((wx.EVT_BUTTON,), (lambda e: self.Close()))
  96.         Bind = self.Bind
  97.         Bind(wx.EVT_RADIOBUTTON, self.OnRadio)
  98.         Bind(wx.EVT_CLOSE, self.OnClose)
  99.  
  100.     
  101.     def proxy_dict(self):
  102.         return util.proxy_settings.get_proxy_dict()
  103.  
  104.     proxy_dict = property(proxy_dict)
  105.     
  106.     def OnOK(self, event):
  107.         pd = self.proxy_dict
  108.         keys = [
  109.             'override',
  110.             'addr',
  111.             'port',
  112.             'proxytype',
  113.             'username',
  114.             'password']
  115.         for key in keys:
  116.             pd[key] = str(getattr(self, key))
  117.         
  118.         pd.save()
  119.         self.Close()
  120.  
  121.     addr = property((lambda self: self.hosti.Value), (lambda self, address: self.hosti.SetValue(address)))
  122.     port = property((lambda self: self.porti.Value), (lambda self, address: self.porti.SetValue(address)))
  123.     username = property((lambda self: self.usernamei.Value), (lambda self, address: self.usernamei.SetValue(address)))
  124.     password = property((lambda self: self.passwordi.Value), (lambda self, address: self.passwordi.SetValue(address)))
  125.     
  126.     def OnRadio(self, event):
  127.         rad = event.GetEventObject()
  128.         if rad.GetName() == 'proxytype':
  129.             setattr(self, 'proxytype', rad.GetLabelText().replace(' ', ''))
  130.         elif rad.GetName() == 'override':
  131.             for key in self.overrads:
  132.                 if self.overrads[key].Value:
  133.                     setattr(self, 'override', key)
  134.                     continue
  135.             
  136.             self.Enablement()
  137.         
  138.  
  139.     
  140.     def Enablement(self):
  141.         switch = self.overrads['SETPROX'].Value
  142.         self.hosti.Enable(switch)
  143.         self.porti.Enable(switch)
  144.         for rad in self.protorads:
  145.             self.protorads[rad].Enable(switch)
  146.         
  147.         hasproxy = not (self.overrads['NONPROX'].Value)
  148.         self.usernamei.Enable(hasproxy)
  149.         self.passwordi.Enable(hasproxy)
  150.  
  151.     
  152.     def OnClose(self, event):
  153.         self.Parent.Close()
  154.  
  155.     
  156.     def OnPaint(self, event):
  157.         dc = wx.PaintDC(self)
  158.         rect = wx.RectS(self.ClientSize)
  159.         dc.Brush = wx.WHITE_BRUSH
  160.         dc.Pen = wx.TRANSPARENT_PEN
  161.         dc.DrawRectangleRect(rect)
  162.  
  163.  
  164.  
  165. class ProxyDialog(wx.Dialog):
  166.     
  167.     def __init__(self, parent = None):
  168.         wx.Dialog.__init__(self, parent, title = _('Connection Settings'))
  169.         if not platformName == 'mac':
  170.             self.SetBackgroundColour(wx.WHITE)
  171.         
  172.         self.Sizer = wx.BoxSizer(VERTICAL)
  173.         self.Sizer.Add(ProxyPanel(self), 1, EXPAND | ALL, 5)
  174.         self.Fit()
  175.         self.Size = wx.Size(400, self.Size.height)
  176.         self.Layout()
  177.         self.Bind(wx.EVT_CLOSE, self.OnClose)
  178.  
  179.     
  180.     def OnClose(self, event):
  181.         import socks as socks
  182.         import util
  183.         socks.setdefaultproxy(**util.GetProxyInfo())
  184.         self.Show(False)
  185.  
  186.  
  187. if __name__ == '__main__':
  188.     from tests.testapp import testapp
  189.     app = testapp()
  190.     f = ProxyDialog()
  191.     f.Show(True)
  192.     app.MainLoop()
  193.  
  194.